Read Buf

Read Buf

与 Tcl 创始人 John Ousterhout 的简短访谈

language

John Ousterhout 博士是计算机科学领域的杰出人物,特别是在操作系统和文件系统方面做出了重要贡献。他是 Tcl 脚本语言的创始人,还参与了多个重大软件项目的开发,包括日志结构文件系统和 Sprite 操作系统。Ousterhout 博士创造的 Tcl 对科技行业产生了深远的影响,改变了开发者对脚本和自动化的理解。

John Ousterhout

Tcl 有什么独特之处?

Ousterhout 博士:我想强调两个方面:

首先是它的嵌入性:我设计 Tcl 时,期望其库能嵌入应用程序中,Tcl 提供通用的脚本功能,应用程序则可将自己的命令添加到内置命令集中。Tcl 与应用程序之间的界限非常灵活,应用程序能够通过多种方式强力扩展 Tcl,比如向语言中添加新的控制结构。我认为,没有其他任何脚本语言能在嵌入性方面达到 Tcl 的程度。

其次是 Tcl 的“万物皆字符串”理念。这对 Tcl 的嵌入性起到了很大作用,也使得扩展 Tcl 变得非常容易。不过,这也使得 Tcl 性能受到影响,即使经过大量优化,Tcl 的效率也无法与那些采用传统类型的语言(如 Python)相比。此外,正因为字符串理念,Tcl 的命令语法显得独特,有人喜欢,也有人不喜欢。

如果你继续留在开发团队,Tcl 会变得不一样吗?:)

Ousterhout 博士:我认为不会有太大不同。在我移交开发责任时,Tcl 已经相当成熟。Tcl 在 1990 年代达到了巅峰,这很大程度上归功于 Tk 工具包的强大和其他 X Window GUI 工具包的用户体验糟糕;在当时,Tcl/Tk 是创建 GUI 应用程序最简单且最强大的方式。不幸的是,Tcl 未能适应 Web,原本在 90 年代使用 Tcl 的大多数应用如今都变成了 Web 应用。

有趣的是,当 1994 年我离开伯克利时,正值 Netscape 创立之时。Jim Clarke 和 Marc Andreessen 曾邀请我作为创始人加入 Netscape,但最终我拒绝了(当时他们还未决定进军 Web)。这是我职业生涯中最大的“如果”时刻之一。如果我当时去了 Netscape,Tcl 很可能会成为浏览器中的脚本语言,而不是 JavaScript,世界或将因此不同!不过,现在回想起来,我也不确定 Tcl 真的比 JavaScript 更适合 Web,所以或许最后的结果是正确的。

作为长期从事教育的人,你预测编程语言的下一个范式转变是什么?

Ousterhout 博士:我真的不知道。过去,每隔 5 到 10 年就会出现一种主要的新编程语言,但距离我能想到的最后一个有趣的新语言(Go),已经快 20 年了。也许其他人会把 Rust 算进去,那么 5-10 年的间隔可能还在延续。

对此,有一个有趣的观察点。历史上,我认为最广泛使用的编程语言并不是来自编程语言研究社区,而是来自那些构建系统,并希望借此找到帮手的人。编程语言研究人员往往创造出对研究者有用的语言:它们具有有趣的理论和概念属性(如 ML),但通常不适用于实际系统。而系统构建者创造的语言对系统开发者更加有用,因此得以广泛应用。比如 C、C++、Perl、Java 和 Go。我也会把 Tcl 放在这个类别中,可能还有 Python。